Portable automobile diagnostic tool

ABSTRACT

A portable automotive diagnostic tool (30) for receiving information from an automotive computer of a vehicle. The portable automotive diagnostic tool (30) is battery powered. The portable automotive diagnostic tool (30) comprises a microcontroller (31), a display (32), a keypad (33), a flash memory (34), a SRAM (35), a battery backup circuit (36), a ROM (37), a UART (38), and a port (39). Automotive codes for configuring the portable automotive diagnostic tool (30) are stored in flash memory (34). The automotive codes are compressed to increase storage to the flash memory (34). The flash memory (34) is non-volatile and retains the automotive codes when power is removed. The automotive codes are updated by writing new automotive codes to the flash memory (34). Information or data received from an automotive computer is stored in SRAM (35). The battery backup circuit (36) powers the SRAM (35) to maintain the information to be taken to a different location when the power is turned off.

BACKGROUND OF THE INVENTION

This invention relates, in general, to automotive diagnostic tools, andmore particularly, to an automotive diagnostic tool which receivesinformation from an automotive computer of an automobile.

The automobile has played an important role in increasing the range inwhich a human is able to travel on a daily basis. In fact, theautomobile has permeated our society to the extent that we have becomereliant on the automobile for our transportation needs. The automobilebecame an indispensable part of daily life when its price was reduced toan affordable level for the average working man and woman. Still, thepurchase of an automobile is not a trivial issue, other than thepurchase of a home, it is typically the next most expensive purchasemade.

In the past, maintaining and repairing an automobile was a popular wayto reduce the cost of owning an automobile. The mechanical nature of theautomobile allowed one to understand its operation without significantspecial training. This is no longer true in a modern automobile eventhough the principles of operation are still the same. The increasedcomplexity of the automobile resides in the addition of electronics tocontrol every facet of automobile operation. The use of microprocessorsand sensor technology throughout a car has allowed much finer control ofits operation thus allowing today's automobile to provide more powerwith greater fuel efficiency while reducing the amount of toxicemissions. The addition of electronics has also discouraged most peoplefrom maintenance and repair because the electronics must be interfacedto diagnose a problem. The equipment used by professional automotivetechnicians to interface with the electronics of an automobile is costprohibitive (typically greater than one thousand dollars) for someonewanting to tune-up or make minor repairs on one or two vehicles.Moreover, the average person is intimidated because he or she has littleor no knowledge on how electrical devices operate (such as amicroprocessor) or how the electronic system controls the automobile.

The integration of semiconductor devices within an automobile hasmirrored the development and advancements of the semiconductor industry.Electronics have permeated every facet of the automobile, from fuelpumps to engine control. Microcontrollers are used extensivelythroughout an automobile to more efficiently operate all mechanicalfunctions. No better example of this technical sophistication is theengine management system of an automobile. The engine computer rapidlysenses engine parameters via sensors such as exhaust, air intake, fuel,temperature etc. and makes adjustments to minimize exhaust pollution,minimize fuel consumption, and maximize engine power. The results havebeen dramatic, today's automobile provides far more luxury, reliability,efficiency, and safety than its brethren of just a few years ago.

An automotive microcontroller is also used as a diagnostic tool forindicating problems. Data from sensors used on the automobile provideinformation that is stored by a microcontroller when an event occurswhich is outside normal operating parameters. Also, the microcontrollercan be used to take a "snapshot" of the output of each sensor at aparticular point in time while an automobile is operating. In general,the microcontrollers are programmed to identify problems and to outputdata which would indicate a course of action in the repair of anautomobile. The information stored on the microcontroller is ported outfor analysis. For example, information from an engine management systemis downloaded for providing data on the spark, fuel, air intake, orexhaust of an automobile. The information is used to determine if theengine is operating correctly. The automotive microcontroller can alsobe programmed to recognize specific faults based on the operatinginformation. The identified fault is stored in memory as a fault codewhich can be received with the operating information to help diagnose aproblem. Information on fault codes are typically written in a servicemanual for an automobile. A service manual defines each fault code andsuggests potential sources for each problem associated with a fault codewhich greatly aids in the diagnosis of a problem.

Automotive diagnostic tools currently offered in the marketplace forinterfacing with an automotive computer are tailored for theprofessional auto mechanic. In general, an automotive diagnostic tool isdesigned to be a permanent piece of hardware in an automobile repairfacility. Most automotive diagnostic tool are not truly portable, forexample, some are built on a cart for easy mobility and for providing alarge readout screen but cannot easily be carried from location tolocation. An automotive diagnostic tool also is typically powered from astandard AC wall outlet since they are used on a continuous basis. Themobility is thus limited to the length of the power cord.

A typical auto mechanic works on a wide variety of automobiles. Anautomotive diagnostic tool for the professional mechanic must have thecapability of interfacing with each type of automotive computer used byautomobile manufacturers to provide full service. A further complicationis the fact that each automobile manufacturer has its own interface andmethodology for handling information. Also, it is quite common for anautomobile to have more than one microcontroller. Microcontrollers areused to control everything from the power seats, radio, and climatecontrol system to the mechanical operation of the engine andtransmission. The professional auto mechanic requires access to all thisinformation to provide complete service. One common approach for storingthe information on interfacing with different automobile types is toplace it on a Read Only Memory (ROM) cartridge. The ROM cartridge isthen plugged into an auto diagnostic tool. The cost of the autodiagnostic tool is increased when the cost of additional ROM cartridgesare factored in. A new ROM cartridge is purchased yearly that includesupdated information on new model cars.

The cost of owning a professional automobile diagnostic tool isprohibitive to an average car owner concerned with maintaining one ortwo different automobiles. Moreover, the level of electronicsophistication provided by the professional automobile diagnostic toolin accessing all information available from an automotive computersystem would be overwhelming to someone interested in diagnosing itemsof simple repair or maintaining an automobile in optimum runningcondition.

It would be of great benefit if an automobile diagnostic tool could beprovided that was inexpensive, yet allowed a person of averagemechanical skill to access information on an automotive computer forproviding general maintenance on an automobile.

SUMMARY OF THE INVENTION

Briefly stated, a portable automobile diagnostic tool is describedherein. The portable automobile diagnostic tool couples to an automobilecomputer for retrieving information on the operating status of anautomobile. The portable automobile diagnostic tool comprises amicrocontroller, a flash memory, a keypad, a Liquid Crystal Display(LCD), and a Static Random Access Memory (SRAM). The microcontroller iscoupled to the keypad, flash memory, LCD, and SRAM. To retrieveinformation, the portable automobile diagnostic tool is coupled to anautomotive computer via a cable. The automobile make and model isselected from a list displayed on the LCD. An automobile codecorresponding to the automobile make and model is found in the flashmemory. The automobile code is decompressed and used to configure themicrocontroller to receive information from the automotive computer ofthe selected vehicle. The information stored by the automotive computeris downloaded by the portable automobile diagnostic tool and stored inthe SRAM. The information is then accessed by the user and displayed onthe LCD to determine the automobile status. A battery back up circuitmaintains power to the SRAM when the power is turned off which allowsthe information to be reviewed at any time or place. The automobilecodings are updated by compressing the automobile codings and writingthem into the flash memory. The flash memory is non-volatile andmaintains the automobile codings in memory even if power is removed.

A method of operating an automobile diagnostic tool is disclosed. Themethod includes decompressing an automobile code stored in memory forconfiguring the automobile diagnostic tool to receive information. Thedecompressed automobile codings are searched for the make and model of avehicle under test. Once the appropriate automobile coding is found anddecompressed, it is used to configure the automobile diagnostic tool.The automobile diagnostic tool then accesses and receives informationfrom an automotive computer of the automobile.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a portable diagnostic tool coupling to anautomotive computer within an automobile.

FIG. 2 is an illustration of a portable diagnostic tool in accordancewith the present invention;

FIG. 3 is a schematic diagram of a portable diagnostic tool inaccordance with the present invention; and

FIG. 4 is a flow diagram illustrating operating steps of the portableautomotive diagnostic tool 30 of FIG. 3.

DETAILED DESCRIPTION OF THE DRAWINGS

An automobile diagnostic tool is a tool for accessing information froman automotive microcontroller (microprocessor). In general, today'sautomotive microcontroller controls every aspect of the operation of anautomobile. An automotive microcontroller is coupled to sensors whichmonitor and feedback information at extremely small time intervals (forexample, millisecond intervals). Developments in sensor technology haveincreased the control and resolution in which mechanical operations canbe measured and analyzed. In particular, an engine managementmicrocontroller is used to optimize performance, maximize fuel economy,and minimize pollutants. The engine management microcontroller monitorsand controls such things as the air intake, spark, timing, and the fuelof an engine.

An engine management microcontroller takes into account such factors asthe throttle position, ambient temperature, air density, fuel mixture,and other data received from sensors to operate the engine at peakefficiency. The information or data from the sensors is monitored andevaluated at such a rapid pace that small changes in the engineoperation are reviewed and acted upon as incremental modifications.Incremental control of the automobile engine maximizes power and fueleconomy while reducing exhaust emissions.

Microcontrollers are not only used on an engine of an automobile but areprevalent throughout the automobile. For example, microcontrollers areused to control such systems as the transmission, instrument cluster,climate control system, trip computers, power seats, and stereo system.Clearly, the pervasive use of electronics has made today's automobilemore reliable, efficient, and luxurious then previous generations.

An automotive microcontroller is designed by a manufacturer to do morethan control a system, most are capable of identifying or reportingproblems. Typically, information monitored or sensed by the automotivemicrocontroller is compared against data stored in local memory. Theinformation stored in memory contains operating parameters formaintaining the system at optimum performance. Adjustments to the systemare made when a difference is detected between the stored operatingparameters and the monitored information. A problem in a system occurswhen an automotive microcontroller must make significant adjustments, orit cannot respond to the monitored information to keep a systemoperational. The automotive microcontroller typically retains monitoredinformation concerning a problem event. An alternative that is oftenemployed is to have a data bank of common problems stored in memory, ifthe monitored data corresponds to a common problem stored in memory, anerror code is retained that can be accessed from the automotivemicrocontroller to indicate the problem.

An automobile diagnostic tool interfaces with the automotivemicrocontroller to retrieve information pertaining to the operatingstatus of the automobile to aid in the diagnosis of a problem. Forexample, an error code is retrieved by an automobile diagnostic tool. Aservice manual for the particular automobile would list the error code,describe the problem, offer detailed information on further testing ofthe system, or provide a solution to the problem. Another type of datathat is retrieved is sensor information. Sensor information is sampledwhile the system is operating, if the sample is taken while anabnormality occurs the information can be used to identify the problem.

FIG. 1 is an illustration of an automobile 11 having an automotivecomputer 12 for controlling the operation of automobile 11. Automotivecomputer 12 has a port 13. A portable automobile diagnostic tool 14 isused to access information from automotive computer 12. Portableautomobile diagnostic tool 14 has a port 16. In the preferredembodiment, a cable 15 couples to ports 13 and 16 for interconnectingportable automobile diagnostic tool 14 to automotive computer 12. Analternative to cable 15 is to place low power transmitter/receivercircuitry on both automotive computer 12 and portable diagnostic tool 14to provide cableless communication.

Although the automotive microcontroller increases ones ability toanalyze a fault within an automotive system, it has had just theopposite effect on the general public. Automobile repair and maintenanceis no longer a mainstream activity used to reduce the cost of owning anautomobile. A major reason for this is the average person is intimidatedby the electronic controls which have been added to an automobile.Another factor is the high cost of the professional tools forinterfacing with an automotive microcontroller. The cost of the toolcannot be justified by the limited use it would have for a common carowner.

As mentioned previously, a ROM cartridge is used with a professionalautomobile diagnostic tool to provide information on automobile codesfor different car models and manufacturers. A ROM cartridge is designedto plug into a professional automobile diagnostic tool. Updated ROMcartridges are provided yearly that include automobile codes of a newmodel year. A ROM cartridge that costs several hundred dollars isjustifiable to an auto repair shop servicing hundreds of vehicles butwould not be acceptable to an average car owner interested inmaintenance of his or her car. Furthermore, there is no immediatesolution for updating for an automobile type not included on the ROMcartridge. The owner of this type of automobile diagnostic tool mustorder and wait until a new cartridge is sent by the manufacturer.Moreover, the use of a memory cartridge is not reliable over a longperiod of time. Constant use, oxidation of the plug, and environmentalconditions (automobile heat and contaminants such as grease) willeventually make the plug in cartridge unreliable unless cleaned anmaintained on a regular basis.

A portable automobile diagnostic tool is described herein thatinterfaces with an automotive microcontroller for retrievinginformation. The portable automobile diagnostic tool is simple to useand is priced to be affordable to an average car owner. A car owner thatis interested in maintaining or performing simple repairs hassignificantly different requirements than a professional automobiletechnician.

A car owner typically interfaces with only a few different types ofautomobiles (the cars he or she owns). A professional automobiletechnician must be prepared to handle any type of automobile that isreceived by its shop. Along these same lines a car owner does not needto interface with every system of a vehicle. Most car owners areinterested in maintaining the engine and systems peripheral to theengine (starter, alternator, fuel system etc.). Tailoring an automobilediagnostic tool to only the functions needed by a non-professionalmechanic will reduce complexity and cost of manufacture.

Making an automobile diagnostic tool portable aids an average car ownerin several ways. Information can be received from an automobile nomatter where it is located. For example, if a car is broken or runningimproperly information can be obtained. Also, a typical car owner doesnot have either the knowledge or information to handle every type offailure that occurs to an automobile. Portability allows a user to takethe automobile diagnostic tool to someone who may be of help, forexample, a person in an auto parts store who is more knowledgable andhas access to a wide variety of technical manuals. A small size andlight weight will also increase portability. This is not as much of afactor for a professional mechanic as evidenced by prior artprofessional automobile diagnostic tools that are large and bulky whichis adequate when working in a small area such as a booth or bay.

It is important that an automobile diagnostic tool for generalconsumption will not become technically obsolete in the future and doesnot have expensive hidden fees. Prior art, professional automobilediagnostic tools have automobile codings stored in a plug in ROMcartridge. A new ROM cartridge must be purchased to update to new modelsentering the marketplace. A programmable automobile diagnostic toolwould eliminate this requirement. A programmable automobile diagnostictool is one in which updated automobile codings can be downloadeddirectly to the unit without the need of removable cartridges and theirassociated problems. Programmability also is attractive since theautomobile diagnostic tool would be less likely to become obsolete asnew model cars come out. Also, a user would be able to load in aparticular automobile code that is rare or not stored in the unitwithout delay by coupling to a database having the particular automobilecode thereby reducing repair time on a vehicle.

FIG. 2 is an illustration of a portable diagnostic tool 21 that iseasily held in the palm of a hand. Portable diagnostic tool 21 includesa keypad 22, a display 23, and a port 24. In the preferred embodiment, ahandle area 25 of portable diagnostic tool 21 is made narrow to fit inthe palm of a hand. Rounded edges on side areas of portable diagnostictool 21 make it easier to hold.

Display 23 displays information and instructions on the operation ofportable diagnostic tool 21. Display 23 is placed in an area of portablediagnostic tool 21 that is wider than handle area 25 to allow for anincreased display size. Port 24 is a receptacle for receiving a cable tointerconnect to an automotive computer.

Keypad 22 has a limited number of buttons so as not to intimidate a userwho has never interfaced to an automotive computer before. Keypad 22 hasa SCAN button, DATA button, CONFIG button, POWER button, CONFIRM/ENTERbutton, UP button, DOWN button, NEXT button, and BACK button.

The keys of keypad 22 are identified in two groups. A first group ofkeys are the function keys which comprise the POWER button, the DATAbutton, the SCAN button, and the CONFIG button. The POWER button enablesand disables portable diagnostic tool 21. The DATA button changes a datamode of portable diagnostic tool 21 for either operational data or error(trouble) code data. The SCAN button actuates portable diagnostic tool21 for capturing data from an automotive computer of an automobile. TheCONFIG button configures each of function keys.

A second group of keys on keypad 22 are the navigation keys forcontrolling the information displayed on display 23. The UP buttonscrolls or moves up to display data in a stream of data. The DOWN buttonscrolls or moves down to display data in the stream of data. The NEXTbutton causes the next data in the data stream to be displayed ondisplay 23. The BACK button moves to display the previous data in thestream of data. The CONFIRM/ENTER button selects an option or confirmsan option.

The keys described hereinabove allow a user to configure portablediagnostic tool 21 to a specific automobile make and model. Onceconfigured for the automobile make and model, portable diagnostic tool21 is set to retrieve information from the automotive computer. One typeof information received from an automotive computer is error or troublecodes which indicate the type of problem which is occurring in anautomobile. Another type of information is sensor information from theautomobile sensors which provides a "snapshot" of an automobile orvehicle under test under specific operating conditions. The sensorinformation is extremely useful in debugging a problem that does notcorrespond to an error code. An automotive computer may also save sensorinformation during the course of operation that is out of specificationand requires reviewing via portable diagnostic tool 21 to determine if aproblem is present.

FIG. 3 is a schematic diagram of a portable automobile diagnostic tool30. Portable automobile diagnostic tool 30 comprises a microcontroller31, a display 32, a keypad 33, a flash memory 34, a Static Random AccessMemory (SRAM) 35, a battery backup circuit 36, a Read Only Memory (ROM)37, a Universal Asynchronous Receiver/Transmitter (UART) 38, and a port39. In the preferred embodiment, display 32 is a Liquid Crystal Display(LCD). All elements disclosed hereinabove are housed in the housingillustrated in FIG. 2. In particular, the electronic componentsincluding flash memory 34 are placed and interconnected on a printedcircuit board within a housing. Integrating all components on a singleprinted circuit board makes automobile diagnostic tool 30 shockresistant and eliminates unneeded external plugs that can lead toreliability problems.

Microcontroller 31 couples to display 32, keypad 33, flash memory 34,SRAM 35, ROM 37, and UART 38. In the preferred embodiment, ROM 37 andUART 38 are built-in with microcontroller 31. Port 39 couples to UART38. Battery back-up circuit 36 couples to SRAM 35 and receives a supplyvoltage VBAT that couples to a battery (not shown). In the preferredembodiment, portable automobile diagnostic tool 30 is powered by abattery. Battery operation eliminates the need for a power cord andallows portable automobile diagnostic tool 30 to be used in remotelocations. Prior art, automobile diagnostic tools for a professionalmechanic are not battery operated because the constant use of the toolwould drain a battery. A power supply system is built into aprofessional automobile diagnostic tool which increases cost, reducesportability due to the AC cord required, and increases the size andweight of the tool. An alternative approach used is to provide cablesthat attach to the battery of the car being tested to power theautomobile diagnostic tool. The power cables are clumsy, decreasereliability as they fatigue, dangerous due to the moving components ofthe automobile and increase the size of the diagnostic tool.

Microcontroller 31 controls the operation of portable automobilediagnostic tool 30. Keypad 33 is used to input control signals tomicrocontroller 31. Display 32 displays information or data provided bymicrocontroller 32. Portable automobile diagnostic tool 30 cannotcommunicate with an automotive computer of a vehicle under test withoutbeing configured. Different automotive manufacturers and even differentmodel types of the same manufacturer may require a differentconfiguration for receiving information. For example, a stream of dataoutput by an automotive computer provides information from each sensorcoupled to the automotive computer. The automotive coding includesinformation that identifies what data corresponds to what sensor.Different models by the same manufacturer could have a different numberof sensors or a different sequence in which the information is outputwhich requires a different automobile coding.

Automotive codings for configuring portable diagnostic tool 30 todifferent automotive manufacturers and model types are stored in flashmemory 34. Flash memory 34 is a non-volatile read/write memory.Automotive codes for configuring portable automobile diagnostic tool 30are stored in flash memory 34. The automotive codes are retained inflash memory even when the power is turned off. The fact that flashmemory is writeable allows new automotive codes to be written into flashmemory 34 (via port 39) for updating automotive codes stored therein.Since flash memory 34 is placed on a printed circuit board with otherelectronic components of portable diagnostic tool 30 it does not have tobe removed for an update thereby increasing reliability. Updating isachieved by coupling a source of new automotive codes (for example, acomputer) to port 39 and downloading the information to flash memory 34.Prior art automotive diagnostic tools are not updateable through a portwhich increases the cost to a user since updating requires the purchaseof a new ROM card or non-volatile memory cartridge with the updatedautomotive codes. Moreover, non-volatility of flash memory 34 allowspower to be completely removed from portable automobile diagnostic tool30 without losing the automotive codes.

In the preferred embodiment, the automotive codes stored in flash memory34 are compressed using a data compression technique to increase theamount of data stored and to reduce the size of flash memory requiredthereby decreasing manufacturing costs. In general, two types ofcompression techniques developed by Jacob Ziv and Abraham Lempel knownas LZ77 and LZ78 provide significant compression of data. LZ77 is a"sliding window" technique in which a dictionary consists of a set offixed-length phrases found in a "window" into the previously processeddata. LZ78 builds phrases up one symbol at a time, adding a new symbolto an existing phrase when a match occurs. Other types of compressiontechniques could also be employed to increase the space utilization offlash memory 34. Implementations of LZ77 and LZ78 as well as other datacompression techniques are taught in a book titled "The Data CompressionBook" by Mark Nelson, 1992, M & T Publishing Company which is herebyincorporated by reference.

ROM 37 and a portion of flash memory 34 are used to store programmingfor operating portable diagnostic tool 30. In the preferred embodiment,a list is stored in ROM 37 or flash memory 34 that identifies thelocation in flash memory of an automobile code for each vehicle type.The user enters information which identifies a specific vehice type. Thelist is then searched until the corresponding automobile code is found.The memory locations for the automobile code is read from the list andprovided to flash memory 34. The compressed automobile codecorresponding to the selected vehicle is read from flash memory 34. Adecompression algorithm is stored in either ROM 37 or flash memory 34for decompressing the compressed automotive codes. In the preferredembodiment, only the automobile code of a selected vehicle is read fromflash memory 34 and decompressed with a decompression algorithm. SRAM 35is used to store the automotive code after it is uncompressed and tostore information or data received from an automotive computer of avehicle under test. The uncompressed automobile code is used toconfigure portable automobile diagnostic tool 30 for receivinginformation from the selected vehicle. Battery backup circuit 36 senseswhen power is turned off to portable automotive diagnostic tool 30 andcouples power to SRAM 35. Battery backup circuit 36 allows informationreceived from a vehicle under test to be maintained in SRAM. Power drainof a SRAM under static conditions is minimal and has only a slighteffect on battery life. A cable plugs into port 39 to couple anautomotive computer of a vehicle under test to UART 38. The operatingspeeds and data transfer rates of different automotive computers varieswith each design. UART 38 synchronizes the transfer of data betweenmicrocontroller 31 and an automotive computer of a vehicle under test.

An example of a typical usage of portable automotive diagnostic tool 30best illustrates advantages over prior art diagnostic tools. Automotivecodings are compressed and loaded into flash memory 34 duringmanufacture. Portable automotive diagnostic tool 30 can be shelvedindefinitely at a store without losing the automotive codings due to thenon-volatile characteristic of flash memory 34 thus a store owner willnever have obsolete inventory. New automotive codings can be written toflash memory 34 via port 39 without purchasing additional components orsending the unit to the manufacturing facility.

In general, portable automotive diagnostic tool 30 is marketed towardspeople who want to maintain and repair their own automobile. This doesnot preclude a professional auto-mechanic from using portable automotivediagnostic tool 30, in fact, there are many features that areadvantageous to a skilled professional. A user configures portableautomotive diagnostic tool 30 for a specific model and make. A cable isused to couple between the automotive computer of a vehicle under testand port 39. Battery power increases flexibility for receivinginformation under almost any condition. For example, some automotivecomputers are conveniently located within an automobile cabin. Portableautomobile diagnostic tool 30 can be coupled to the automotive computerwithin easy reach as the automobile is driven. A "snapshot" of theoperating conditions of the engine can be taken when an intermittentproblem occurs during normal operation with portable automobilediagnostic tool 30. The user may not be sophisticated enough tointerpret all the information from each sensor of an automobile of the"snapshot" to deduce the problem after scrolling through theinformation. Portable automobile diagnostic tool 30 is then powered downand the information of the "snapshot" stored in SRAM (powered by batterybackup). Portable automobile diagnostic tool 30 can then be taken tosomeone with more expertise. For example, an auto parts store (whichsells the tool) would want to provide additional expertise in theanalysis of problems. After analyzing the problem by reviewing theinformation provided by portable automobile diagnostic tool 30 anddetermining a solution, the auto parts store would more than likely beable to sell the required fix up parts to the automobile owner. The autoparts store is also an ideal location for providing updated automotivecodes to purchasers of portable automotive diagnostic tool 30.

FIG. 4 is a flow diagram illustrating operating steps of the portableautomobile diagnostic tool 30 of FIG. 3. A step 41 comprises compressingautomobile codings on different automobile makes and models. Usingcompression techniques increases the number of automobile makes andmodels that are stored in a memory thereby reducing manufacturing costs.

A step 42 comprises storing the automobile codings in flash memory.Flash memory is non-volatile so power is not required to retain theautomobile codings. Flash memory is also writeable so the automobilecodings can be updated as required.

A step 43 comprises coupling the automobile diagnostic tool to anautomotive computer of a vehicle under test. The automobile diagnostictool and the automotive computer are coupled via a cable.

A step 44 comprises entering an automobile make and model to theautomobile diagnostic tool. The automobile make and model is selectedfrom a table of vehicle types displayed by the automobile diagnostictool. In the preferred embodiment, a list in stored in either ROM orflash memory that identifies memory locations of the compressedautomobile code corresponding to selected vehicle type.

A step 45 comprises finding an automobile coding corresponding to theselected automobile make and model. The list is searched until a matchis found corresponding to the selected vehicle. The memory locationscorresponding to the compressed automobile code is read from the listand provided to the flash memory for reading.

A step 46 comprises decompressing automobile codings stored in flashmemory. In particular, the compressed automobile code corresponding tothe selected vehicle is read from flash memory. The automobile code isdecompressed using a decompression algorithm stored in the automobilediagnostic tool. The decompressed automobile code is stored in a SRAM ofthe automobile diagnostic tool.

A step 47 comprises configuring the automobile diagnostic tool to theautomobile coding. The automobile coding describes a format used in theautomotive computer.

A step 48 comprises receiving information from the automotive computerpertaining to the operation of the automobile. The information retrievedfrom the automotive computer is stored in the SRAM.

A step 49 comprises reviewing information received from the automotivecomputer. The information can be reviewed on a display included in theautomotive diagnostic tool. The information can also be scrolled throughby use of a keypad.

A step 50 comprises a step of turning power off on the automotivediagnostic tool.

A step 51 comprises a step of providing power to the SRAM storinginformation received from the automotive computer. Retaining informationallows the automotive diagnostic tool to be transported to otherlocations and reviewed at any time.

Although the mechanical operation of an automobile has not changedsignificantly, the sophisticated electronics used to increase theefficiency of a car has made it extremely difficult to perform routinemaintenance by an average automobile owner. By now it should beappreciated that an automobile diagnostic tool has been described thatsimplifies a task of determining an operating status of an automobile.The automobile diagnostic tool is battery operated which allowsinformation to be received or monitored at any location. Automotivecodes are stored in non-volatile read/writeable memory which can beupdated for different make and model cars. Data compression techniquesare employed to increase the number of automotive codes stored whilereducing the memory size. Power can also be removed without fear oflosing the automotive codes due to the non-volatile nature of flashmemory. A battery backup circuit is employed to maintain information inSRAM (received from an automotive computer). This allows information tobe transported to a different location or to be reviewed at a later datewith the power turned off.

While specific embodiments of the present invention have been shown anddescribed, further modifications and improvements will occur to thoseskilled in the art. It is understood that the invention is not limitedto the particular forms shown and it is intended for the appended claimsto cover all modifications which do not depart from the spirit and scopeof this invention.

We claim:
 1. A portable automobile diagnostic tool comprising:amicrocontroller for receiving information from an automotive computer ofa vehicle under test; a flash memory coupled to said microcontroller forstoring information on automobile codings for a plurality ofautomobiles, said flash memory being writeable for updating saidautomobile codings and wherein automobile codes stored in said flashmemory are compressed; a keypad coupled to said microcontroller forentering operations of the portable automobile diagnostic tool; a StaticRandom Access Memory (SRAM) coupled to said microcontroller for storinginformation received from said automotive computer of said vehicle undertest; and a display coupled to said microcontroller for displayinginformation received from said automobile computer of said vehicle undertest.
 2. The portable automobile diagnostic tool as recited in claim 1wherein said flash memory is nonvolatile for retaining said automobilecodings when power is removed from the portable automobile diagnostictool.
 3. The portable automobile diagnostic tool as recited in claim 1wherein the portable automobile diagnostic tool is powered by a batteryto allow it to be operated remotely.
 4. The portable automobilediagnostic tool as recited in claim 1 wherein the SRAM is powered by abattery back up circuit when power is turned off on the portableautomobile diagnostic tool thereby retaining information received fromsaid automotive computer of said vehicle under test.
 5. The portableautomobile diagnostic tool as recited in claim 1 wherein said automobilecodings are compressed using a LZ77 compression algorithm.
 6. Theportable automobile diagnostic tool as recited in claim 1 wherein saidautomobile codings are compressed using a LZ78 compression algorithm. 7.The portable automobile diagnostic tool as recited in claim 1 whereinsaid automobile codings are decompressed and stored in said SRAM when anautomobile model and make is selected.
 8. The portable automobilediagnostic tool as recited in claim 1 further including a Read OnlyMemory (ROM) coupled to said microcontroller for storing software foroperating the portable automobile diagnostic tool.
 9. The portableautomobile diagnostic tool as recited in claim 1 further including:aport coupled to said microcontroller; and a cable for coupling betweensaid port and said automotive computer of said vehicle under testwherein information from said vehicle under test is coupled through saidcable to said port and received by said microprocessor.
 10. The portableautomobile diagnostic tool as recited in claim 9 further including aUniversal Asynchronous Receiver/Transmitter (UART) coupled between saidport and said microcontroller for synchronizing a transfer ofinformation between said automotive computer and said microcontroller.11. The portable automobile diagnostic tool as recited in claim 1wherein said microprocessor, said flash memory, and said SRAM are afixedto a printed circuit board within the portable automobile diagnostictool.
 12. A method for operating an automobile diagnostic tool, themethod comprising:coupling the automobile diagnostic tool to anautomotive computer of a vehicle under test; selecting an automobilemake and model corresponding to said vehicle under test; finding anautomobile coding stored in memory corresponding to said vehicle undertest; decompressing said automobile coding corresponding to saidselected automobile make and model; configuring the automobilediagnostic tool with said decompressed automobile coding to receiveinformation from said automotive computer of said vehicle under test;and receiving information from said automotive computer of said vehicleunder test.
 13. The method as recited in claim 12 further including thesteps of:receiving automobile codings; using a compression algorithm onsaid automobile codings; and storing compressed automobile codings insaid memory wherein said compression algorithm decreases memory size andincreases a number of automobile codings being stored in said memory.14. The method as recited in claim 13 further including the stepsof:creating a list identifying memory locations of each compressedautomobile coding to a vehicle type; searching said list for saidselected automobile make and model; finding said memory locationcorresponding to said selected automobile make and model; and reading acompressed automobile code from said memory at said memory locationcorresponding to said selected make and model.
 15. The method as recitedin claim 13 further including the steps of:choosing said memory of theautomobile diagnostic tool as a flash memory wherein said flash memoryis nonvolatile for allowing power to be removed from the automobilediagnostic tool without affecting automobile codings stored therein. 16.The method as recited in claim 12 wherein said step of receivinginformation from said automotive computer of said vehicle under testincludes the steps of:storing said information from said automotivecomputer of said vehicle under test in a Static Random Access Memory(SRAM); and providing a battery back up circuit for powering said SRAMwhen power is turned off in the automobile diagnostic tool therebyretaining said information from the automotive computer and allowing itto be read at a later time.
 17. An automobile diagnostic tool forreceiving information from an automotive computer of a vehicle undertest, the automobile diagnostic tool comprising:a microcontroller forinterfacing with the automotive computer of the vehicle under test; aflash memory responsive to said microcontroller for storing automobilecodings for a plurality of automobiles, said automobile codings beingstored in a compressed format in said flash memory; a keypad coupled tosaid microcontroller for entering operations of the automobilediagnostic tool; a Static Random Access Memory (SRAM) responsive to saidmicrocontroller for storing data from said automobile computer of saidvehicle under test; a battery backup circuit coupled to said SRAM forproviding power to said SRAM when power is turned off to the automobilediagnostic tool; and a display for displaying information received fromsaid automobile computer of said vehicle under test.
 18. The automobilediagnostic tool as recited in claim 17 wherein an automobile coding isdecompressed and stored in said SRAM when a make and model of saidvehicle under test is selected and wherein said automobile coding isused to configure the automobile diagnostic tool for receivinginformation from the automotive computer of said vehicle under test. 19.The automobile diagnostic tool as recited in claim 17 wherein saidautomobile codings are compressed using a LZ77 compression algorithm.20. The automobile diagnostic tool as recited in claim 17 wherein saidautomobile codings are compressed using a LZ78 compression algorithm.21. The automobile diagnostic tool as recited in claim 17 wherein saidflash memory is non-volatile for retaining said automobile codings whenpower is removed from the automobile diagnostic tool.
 22. The automobilediagnostic tool as recited in claim 17 wherein the automobile diagnostictool is powered by a battery to allow it to be operated remotely.
 23. Amethod for storing information on automobile codes in an automobilediagnostic tool, the method comprising the steps of:compressingautomobile codes; and storing compressed automobile codes in memory. 24.The method as recited in claim 23 wherein said step of storingautomobile codes in memory includes a step of storing said automobilecodes in a non-volatile read/write memory in the automobile diagnostictool.
 25. The method as recited in claim 24 further including a step ofdecompressing an automobile code corresponding to a selected vehicletype for configuring the automobile diagnostic tool for receivinginformation from an automotiive computer of said selected vehicle type.